package com.cd.university.common;

import io.swagger.models.auth.In;

/**
 * 全局变量
 * @author 陈栋
 * @create 2021/9/7 20:39
 */
public interface UniversityConstants {

    /**
     * 默认的用户觉角色id
     * 默认为教师角色
     */
    Integer DEFAULT_ROLE_ID = 1;

    /**
     * 超级管理员角色id
     */
    Integer ADMIN_ROLE_ID = 0;

    /**
     * 权限列表的根id
     */
    Integer ROOT_PARENT_ID = 0;

    /**
     * 用户的有效状态
     */
    Byte AVAILABLE_STATUS = 1;

    /**
     * 用户的无效状态
     */
    Byte NOT_AVAILABLE_STATUS = 0;

    /**
     * 新用户
     */
    Byte NEW_USER_STATUS = 2;

    /**
     * OBS的桶名称
     */
    String OBS_BUCKET_NAME = "spring-study";

    /**
     * 用户的文件夹名称
     */
    String USER_IMAGE_FOLDER = "userImage";

    /**
     * 项目文件
     */
    String PROJECT_FOLDER = "projectFile";

    /**
     * 默认的头像
     */
    String DEFAULT_USER_IMAGE = "defaultImage.jpeg";

    /**
     * 系统生成的系统日志文件，上传到服务器的文件夹名称
     */
    String SYSTEM_LOG_FILE_FOLDER = "Log";

    /**
     * 项目状态：未通过,项目刚提交
     */
    Integer PROJECT_STATUS_NOT_PASS = 1;

    /**
     * 项目状态：初审通过，审核表之后，马上进行复审
     */
    Integer PROJECT_STATUS_FIRST_PASS = 2;

    /**
     * 项目状态：复审通过，专家通过
     */
    Integer PROJECT_STATUS_SECOND_PASS = 3;

    /**
     * 项目状态：只要点击了结题申请，并且上传了成果形式，那么进入状态4
     */
    Integer PROJECT_STATUS_SUCCESS_PROJECT= 4;

    /**
     * 项目状态：结项，结题申请通过
     */
    Integer PROJECT_STATUS_FINALIZE_PROJECT = 5;

    /**
     * 未接受邀请
     */
    Integer PROJECT_TEAM_NOT_ACCEPTED = 0;

    /**
     * 项目的团队成员
     */
    Integer PROJECT_TEAM_ACCEPTED = 1;

    /**
     * 拒绝邀请
     */
    Integer PROJECT_TEAM_REFUSE = 2;

    /**
     * 项目文件的附件，状态为0
     */
    Integer PROJECT_FILE_ANNEX = 0;

    /**
     * 项目文件还没有通过审核
     */
    Integer PROJECT_FILE_NOT_PASS = 1;

    /**
     * 项目文件通过审核
     */
    Integer PROJECT_FILE_PASS = 2;

    /**
     * 设置文件url连接的过期时间，默认为1年
     */
    Long EXPIRE_SECONDS_FILE_URL = 60*60*24*365L;

    /**
     * 设置预申请项目的定时删除时间，默认为30分钟
     */
    Integer DELETE_ADVANCE_TIME = 1000 * 60 * 30;

    /**
     * 定时更新缓存中的项目任务
     */
    Integer UPDATE_PROJECT_TIME = 1000 * 60 * 60;

    /**
     * 项目得分形式-论文
     */
    Integer PROJECT_ACHIEVEMENT_PAPER = 1;

    /**
     * 项目得分形式-获奖
     */
    Integer PROJECT_ACHIEVEMENT_AWARD = 2;

    /**
     * 项目得分形式-专利
     */
    Integer PROJECT_ACHIEVEMENT_PATENT = 3;

    /**
     * 项目得分形式-项目等级
     */
    Integer PROJECT_ACHIEVEMENT_LEVEL = 4;

    /**
     * 消息的状态：成员邀请
     */
    Integer MESSAGE_STATUS_INVITE = 1;

    /**
     * 消息的状态：初审通过
     */
    Integer MESSAGE_STATUS_FIRST_PASS = 2;

    /**
     * 消息的状态：复审通过
     */
    Integer MESSAGE_STATUS_SECOND_PASS = 3;

    /**
     * 消息的状态：提交结题申请
     */
    Integer MESSAGE_STATUS_FINAL_APPLICATION =4;

    /**
     * 消息的状态：结题申请通过
     */
    Integer MESSAGE_STATUS_APPLICATION_PASS = 5;

    /**
     * LRU算法的最大容量
     */
    Integer LRU_CACHE_MAX_LEN = 15;

    /**
     * 规定时间内同一个接口同一个ip最大访问次数
     */
    Integer MAX_LIMIT_REQUEST_COUNT = 5;

    /**
     * 限定时间1秒
     */
    Long MAX_LIMIT_REQUEST_TIME = 1000 * 1L;
}
